package ua.pp.fland.multithreading.sorting;

import org.apache.log4j.Logger;

/**
 * @author Maxim Bondarenko
 * @version 1.0 Jul 8, 2010
 */

public class ArgumentGuard {

    private static final Logger logger = Logger.getLogger(ArgumentGuard.class);

    private ArgumentGuard() {

    }

    public static void checkNotNull(Object arg, String argName) throws IllegalArgumentException{
        if (arg == null) {
            String msg = "Argument '" + argName + "' cannot be null!";
            logger.error(msg);
            throw new NullPointerException(msg);
        }
    }

    public static void checkPositiveInteger(int arg, String argName) throws IllegalArgumentException {
        if(arg <= 0){
            String msg = "Argument '" + argName + "' cannot be not positive";
            logger.error(msg);
            throw new IllegalArgumentException(msg);
        }
    }

    public static void checkPositiveInteger(long arg, String argName) throws IllegalArgumentException{
        if(arg <= 0){
            String msg = "Argument '" + argName + "' cannot be not positive";
            logger.error(msg);
            throw new IllegalArgumentException(msg);
        }
    }

    public static void checkNotBlank(String arg, String argName) throws IllegalArgumentException{
        if(arg.isEmpty()){
            String msg = "Argument '" + argName + "' cannot be blank";
            logger.error(msg);
            throw new IllegalArgumentException(msg);
        }
    }
}
